package com.cskaoyan.javase.basic._4scanner;

import java.util.Scanner;

/**
 * Scanner,有扫描仪的意思,它的主要用途是用来做键盘输入,和String一样,它是一个类,是一个引用数据类型
 * 使用Scanner做键盘录入的步骤:
 *      1.导包(现在不理解不重要,当成固定步骤)
 *          在package语句下面写下列语句:
 *          import java.util.Scanner;
 *      2.创建对象(现在不理解不重要,当成固定步骤)
 *          在main方法中写以下语句:
 *          Scanner sc = new Scanner(System.in);
 *      3.调用方法(现在不理解不重要,当成固定步骤)
 *          如果想要键盘录入一个int值,直接写int num = sc.nextInt();
 *          如果想要键盘录入一个字符串,直接写String str = sc.next();或者String str = sc.nextLine();
 *
 * 注意事项:
 *      1. 为了避免忘记键盘输入,所以最好给出一个提示键盘录入的语句
 *      2. 键盘录入时,需要录入正确的数据,否者会程序报错,代码终止执行
 *      3. Scanner做键盘输入时,总体把方法分为两类:
 *          a.next(),nextInt,nextDouble()等next()系列方法
 *              next()系列方法,在键盘录入,需要扫描数据,会从第一个非空格(包括空格,回车,制表等)的字符开始扫描,然后碰到空格(包括空格,回车,制表等)结束扫描,中间的字符都是被扫描的数据
 *
 *          b.nextLine()方法
 *              会完整接收一行数据,不关心是不是空格就会开始扫描.只有换行(回车)能够结束nextLine方法的扫描
 *
 *
 * @since 11:26
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // 1.导包,idea会自动导包
        // 2.创建对象
        // 写代码时,如果是左右赋值的语句,先写右边,因为左边可以自动生成
        Scanner sc = new Scanner(System.in);
        // 3.调用方法
        System.out.println("请键盘输入一个整数: ");
        int num = sc.nextInt();
        System.out.println("请输入一个字符串: ");
        String str = sc.nextLine();
        System.out.println("键盘录入的数字是: " + num);
        // soutv 自动输出最近的变量
        // 在这里str没有等到键盘输入,就被回车结束扫描,所以它没有得到任何字符串,在计算机中,什么都没有也是一个字符,是一个绝对空字符,字符串长度=0,编码值也是0
        System.out.println("键盘录入的字符串是: " + str);
        System.out.println(str.length());

        /*Scanner sc = new Scanner(System.in);
        System.out.println("请键盘录入:");
        String str1 = sc.next();
        String str2 = sc.next();
        System.out.println("str1 = " + str1);
        System.out.println(str1.length());
        System.out.println("str2 = " + str2);
        System.out.println(str2.length());*/
        /*Scanner sc = new Scanner(System.in);
        System.out.println("请键盘录入:");
        String str1 = sc.nextLine();
        String str2 = sc.nextLine();
        System.out.println("str1 = " + str1);
        System.out.println(str1.length());
        System.out.println("str2 = " + str2);
        System.out.println(str2.length());*/


    }
}
